Skip to content

Release/v5.0.0#10

Merged
NinjaRocks merged 8 commits intomasterfrom
release/v5.0.0
Mar 15, 2026
Merged

Release/v5.0.0#10
NinjaRocks merged 8 commits intomasterfrom
release/v5.0.0

Conversation

@NinjaRocks
Copy link
Member

Release Notes - v5.0.0

New Architecture

Aggregate → Interceptor → Middleware → Dispatcher → Queue ← Listener → Resolver → Handler

New Features

1. ISubscribes

Aggregates can handle their own events:

public class OrderAggregate : Aggregate, ISubscribes<OrderPlaced>
{
    public Task HandleAsync(OrderPlaced @event) => ...;
    public void PlaceOrder(decimal amount) => Raise(new OrderPlaced());
}

2. AggregateFactory

Multiple methods to create proxied aggregates:

// Default constructor
var order = await factory.CreateAsync<OrderAggregate>();

// With constructor arguments
var order = await factory.CreateAsync<OrderAggregate>(logger);

// From service provider (auto-resolves deps)
var order = await factory.CreateFromServiceProviderAsync<OrderAggregate>();

// Wrap existing instance
var order = await factory.CreateFromInstanceAsync(existingOrder);

3. Event Middleware (IEventMiddleware)

Pipeline hooks: OnDispatchingAsync, OnDispatchedAsync, OnHandlingAsync, OnHandledAsync

4. Event Queue (IEventQueue)

In-flight non-persistent queue with subscription support

5. Event Listener (IEventListener)

Processes queued events asynchronously

@NinjaRocks NinjaRocks merged commit 0a4e731 into master Mar 15, 2026
5 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants